knitr::opts_chunk$set(echo = FALSE) library(sankeydiagram)
R es un lenguaje de programación con un enfoque al análisis estadístico ampliamente utilizado en ciencia de datos. Descargar.
Rstudio es un entorno de desarrollo integrado(IDE) para R que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software. Descargar
Para asignar variables utilizaremos "<-
"
````r x <- 4 class(x) Etiqueta <- "Hola" class(Etiqueta) Logico <- TRUE class(Logico)
## Elementos en R ### Vectores Es la estructura de dato mas básico en R y se define como un conjunto de elementos asignados a la función `c()` ````r v1 <- c(1,2,3,4) class(v1)
R "obliga" a que todos los elementos de una misma estructura sean del mismo tipo de datos, a esta propiedad se le llama coerción.
````r v2 <- c(1,"Hola",TRUE) class(v2)
logical < numeric < character ## Elementos en R ### Matrices Las matrices y arrays pueden ser descritas como vectores multidimensionales. Al igual que un vector, únicamente pueden contener datos de un sólo tipo, pero además de largo, tienen más dimensiones. ````r a <- matrix(1:12, ncol = 4 , nrow = 3) class(a) print(a)
for
Un bucle for
es la iteración repetitiva de un código un determinado número de veces.
for(i in 1:10){ #codigo }
Ejemplo:
b = 1 for(j in 1:10){ b = b * j } print(paste("El factorial de 10 es: ", b))
Otros bucles comunes son while
y do while
if(Condicion 1){ #codigo }else if(Condicion 2){ #codigo }else{ #codigo }
mifuncion <- function(argumento1, argumento2, …) { cuerpo resultado }
Ejemplo:
cv <- function(x){ y <- sd(x)/mean(x) return(y) } cv(1:10)
Un grafo es una pareja de conjuntos (V, E) donde:
LLamamos matriz de adyacencia de G a la matriz nxn, A ={aij}
G <- c(0,3,26,11,3,0,0,0,26,0,0,0,11,0,0,0) A <- matrix(G, 4, 4) colnames(A) <- c("A", "B", "C", "D") row.names(A) <- c("A", "B", "C", "D") print(A)
Un diagrama de sankey trabaja de forma similar a un grafo sobre una matriz.
G1 <- c(0,3,26,11,0,0,0,0,0,0,0,0,0,0,0,0) B <- matrix(G1, 4, 4, byrow = TRUE) colnames(B) <- c("A", "B", "C", "D") row.names(B) <- c("A", "B", "C", "D") print(B)
sankey(B)
El package "sankeydiagram" fue diseñado para trabajar con archivos CSV descargados desde la plataforma Swift:
CxF()
: Toma respuestas en múltiples columnas y las reordena en una columna única.matrizRelacional()
: Toma el archivo ordenado y genera una matriz según 2 criterios en la columna Questions.sankey()
: Grafica cualquier matriz en un diagrama de Sankey.PROBLEMA: CxF Y matrizRelacional son funciones muy específicas y la tabla de entrada requiere un formato especifico
El package se puede descargar e instalar desde GitHub escribiendo en la consola de Rstudio:
install.package("devtools") library(devtools) install_github("franciscoxaxo/sankeydiagram") library("sankeydiagram")
Ver en GitHub
Para comenzar se necesita que los títulos de las 7 primeras columnas sean:
"ï..ActiveScreener.Id", "Time.of.Screening", "Title", "Authors", "Question", "List.of.Reviewers","Answers"
Para cargar la tabla utilizaremos la función read.csv()
:
df <- read.csv(rutaDelArchivo, sep = ";", encoding = "UTF-8", na.string = "")
Utilizaremos la función CxF
para ordenar esta tabla:
CxF(df)
El nuevo archivo lucira más o menos así:
Para cargar la nueva tabla utilizaremos nuevamente la función read.csv()
:
df2 <- read.csv(rutaDelArchivo, sep = ";", encoding = "UTF-8")
Para transformarlo a matriz escojemos dos criterios de la columna Questions y utilizamos la funcion matrizRelacional
:
matriz <- matrizRelacional(df2, criterio1 = ####, criterio2 = ####)
Esta matriz puede ser representada utilizando la funcion sankey
:
sankey(matriz)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.